#ifndef __FUNCTION_FACTORY_H__
#define __FUNCTION_FACTORY_H__

#include <HAL/functionInterface.h>
#include <HAL/hal.h>

#include <string>
#include <boost/shared_ptr.hpp>

namespace ECG
{
namespace HAL
{


    class FuncFactory{

    public:
        static FuncFactoryPtr instance();
        FuncInterfacePtr getFuncByID(std::string id);// the id is the name of so file expamle: libid.so
        ~FuncFactory();
    private:
        FuncFactory();
        std::string path;
        static FuncFactoryPtr m_funcFactory;
    };
}
}



#endif //__FUNCTION_FACTORY_H__
